/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sessionbeans.stateful;

import javax.ejb.Stateful;
import javax.inject.Inject;
import jpa.entities.Empresa;
import jpa.entities.Escritorio;
import jpa.entities.FuncaoPaciente;
import jpa.entities.Paciente;
import jpa.facade.ConsultaFacade;
import jpa.facade.EmpresaFacade;
import jpa.facade.EscritorioFacade;
import jpa.facade.FuncaoPacienteFacade;
import jpa.facade.PacienteFacade;
import util.ConsultaDO;

/**
 *
 * @author renato
 */
@Stateful
public class AtendimentoBean implements AtendimentoBeanRemote {

    // Add business logic below. (Right-click in editor and choose
    // "Insert Code > Add Business Method")
    @Inject
    PacienteFacade pacienteFacade;
    @Inject
    FuncaoPacienteFacade funcaoPacienteFacade;
    @Inject
    EmpresaFacade empresaFacade;
    @Inject
    EscritorioFacade escritorioFacade;
    @Inject
    ConsultaFacade consultaFacade;
    
    private Paciente paciente;
    private Empresa empresa;
    private Escritorio escritorio;
    private FuncaoPaciente funcaoPaciente;

    @Override
    public Paciente buscaOuCriaPaciente(String nome, String rg, String orgaoEmissor, String uf, String ctps, String serieCtps, String ufCtps) {
        paciente = pacienteFacade.buscaPaciente(nome.toLowerCase(), rg, orgaoEmissor, uf, ctps, serieCtps, ufCtps);
        if (paciente == null) {
            paciente = new Paciente();
            paciente.setNome(nome);
            paciente.setRg(rg);
            paciente.setOrgaoEmissor(orgaoEmissor);
            paciente.setUf(uf);
            paciente.setCtps(ctps);
            paciente.setSerieCtps(serieCtps);
            paciente.setUfCtps(ufCtps);
            pacienteFacade.create(paciente);
            paciente = pacienteFacade.buscaPaciente(nome, rg, orgaoEmissor, uf, ctps, serieCtps, ufCtps);
        } else {
            for (FuncaoPaciente item : paciente.getFuncaoPacienteCollection()) {
            }
        }
        return paciente;
    }

    @Override
    public void atualizaPaciente(Object paciente) {
        pacienteFacade.edit((Paciente) paciente);
    }

    @Override
    public void atualizaOuCriaFuncaoPaciente(Object funcaoPaciente, Object empresa, Object escritorio) {
        this.funcaoPaciente = (FuncaoPaciente) funcaoPaciente;
        this.empresa = (Empresa) empresa;
        this.escritorio = (Escritorio) escritorio;
        this.funcaoPaciente.setFkEmpresa(this.empresa);
        this.funcaoPaciente.setFkEscritorio(this.escritorio);
        this.funcaoPaciente.setFkPaciente(this.paciente);
        if (this.funcaoPaciente.getIdFuncaoPaciente() == null) {
            funcaoPacienteFacade.create(this.funcaoPaciente);
        } else {
            funcaoPacienteFacade.edit(this.funcaoPaciente);
        }
    }

    @Override
    public ConsultaDO criaConsulta(String razaoSocial, String cnpj) {
        return null;
    }
    
}
